#include <iostream>
#include <string>
#include <memory>

using namespace std;

class PersonImpl;
class Date;
class Address;

class Person
{
public:
    Person(const std::string &name, const Date &birthday, const Address &addr);
    std::string name() const;
    std::string birthDate() const;
    std::string address() const;

private:
    std::shared_ptr<PersonImpl> pImpl;

};

int main(int argc, char *argv[])
{
    return 0;
}
